iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0

Day07.png

新增腳本

STEP 1

建立一個名為 Script 的資料夾


對 Assets 點擊右鍵 選擇 Create 點選 Folder 命名為 Script

01

💡古古的小提醒:
養成資料分類的好習慣,未來專案變得更複雜時,才不會找不到想要的東西喔!

STEP 2

新增一個 C# Script


對 Script 資料夾 點擊右鍵 選擇 Create 點選 C# Script 命名為 Hello

02

古古的小提醒:

在 Unity 中,為已建立好的 C# Script 重新命名較為麻煩,因此在最初進行命名時,盡量一次到位,以免出錯。

STEP 3

開啟 Visual Studio 編輯器


雙擊 Hello 腳本 自動跳轉至 Visual Studio 編輯器

檢查程式碼 public class Hello : MonoBehaviour 中的 Hello( 腳本名稱 )呈藍綠色即為成功

03

04

古古的課程補充:

若雙擊腳本時無法成功開啟編輯器,可以按照以下方式進行檢查

於視窗頂端工具列中點擊 Unity 點選 Settings 選擇 External Tools( 外部工具 )

於 External Script Editor 欄位中選擇 Visual Studio 點擊 Regenerate project files

最後再重新開啟一次編輯器就可以囉!

05
06

若是開啟編輯器後沒有 auto complete 的功能,也可以透過上述方法解決喔~

腳本架構

✦ using

◌ 代表使用哪些 Library( 函式庫 ),如同使用工具箱的概念。

◌ 撰寫方式為 using + 命名空間。

07

✦ public

◌ 是類型和類型成員的存取修飾詞,意指 未限制存取 ,大家都可以取用。

08

✦ class

◌ 用於宣告類別 。

09

✦ MonoBehaviour

◌ 代表繼承 MonoBehaviour 這個類別。
◌ 擁有這個類別,就可以使用一些 Unity 專有的功能。

10

✦ Start( )

◌ 在第一幀畫面渲染出來( Update )之前,執行 Start 括號中的程式碼,並且 只執行一次 。
◌ 通常會在 Start 的程式裡面 設定遊戲初始值 ,將資料進行初始化(initialize)。

11

✦ Update( )

◌ Update 中的程式碼,在遊戲開始後,畫面 每更新一幀,都會執行一次 。
◌ 通常會將需要不斷進行判斷或執行的程式放在 Update 裡面。

12

✦ //

◌ 寫在雙斜線後的文字,皆為註解,將 不影響程式執行 。

13

**Debug.Log 與 Console **

STEP 1

撰寫 Debug.Log( ) 的資料,查看此工具在 Start 中使用的結果


在 void Start( ) 的 { } 中 輸入 Debug.Log("start!"); 儲存檔案

14

📝 古古的課程補充:
Debug.Log( ) 可將放入 雙引號 中的資料 print 出來,並用於確認程式執行是否有誤。

STEP 2

將腳本放入遊戲物件中


回到 Unity 視窗 將 Hello 腳本拖曳至 Cube 的 Inspector 介面中

15
出現 藍線 + 游標呈連結狀 即可放開

16
呈現此畫面即成功插入腳本!

💡古古的小提醒:
回到 Unity 後,若視窗左下角沒有出現紅字警告的話,就代表程式無誤,可正常執行。
反之,若出現紅字警告,則可按照文字提示,回到編輯器中檢查並修正錯誤。

17

STEP 3

執行程式,確認是否順利印出結果


點擊 播放 查看視窗左下角是否跳出 start! 字樣 點擊 start! 跳出 Console 視窗

18
Console 視窗中也應當印出 start! 的結果

📝 古古的課程補充:
➊ 在 Console 視窗中 點擊 結果訊息,可 查看程式碼路徑 。
➋ 在 Console 視窗中 雙擊 結果訊息,會直接 跳轉回編輯器並指出該行程式碼 。
19

STEP 4

重複上述步驟,查看此工具在 Update 中使用的結果


在 void Update( ) 的 { } 中 輸入 Debug.Log("Update"); 儲存檔案

20

STEP 5

執行程式,查看印出結果


點擊 播放 視窗左下角跳出 Update 字樣 點擊 Console Console 視窗中不斷印出 Update

21
Console 視窗中印出無限多個 Update 的結果

📝 古古的課程補充:
➊ 在 Console 視窗中 點擊 Clear,可 清除所有結果 。
➋ 在 Console 視窗中 點擊 Collapse,可 將相同資料收納至一個結果中 。

22

STEP 6

增加 if 條件判斷式,使 Update 中的程式碼根據條件執行


在 void Update( ) 的 { } 中 輸入 if (Input.GetKeyDown(KeyCode.Space)) { }
在 if 條件判斷式的 { } 中 輸入 Debug.Log("Space pressed"); 儲存檔案

23

📝 古古的課程補充:

➊ if 條件判斷式的用法為 if ( 輸入要達成的條件 ) { 達成條件後要執行的動作 }
Input.GetKeyDown(KeyCode.Space) 意思為「按下空白鍵」。

STEP 7

執行程式,查看印出結果


點擊 播放 視窗左下角跳出 start! 字樣 按下空白鍵
Console 視窗中依照空白鍵被按下的次數 ,印出相應數量的 Space pressed 字樣

24

💡古古的小提醒:
KeyCode 偵測英文輸入與注音輸入的編碼方式不一樣,因此在按壓鍵盤時,記得切換成 英文輸入法 才能順利偵測喔!


上一篇
Day06 / Unity 世界基本元素:Component 練習
下一篇
Day08 / Unity Asset Store 超強大的遊戲素材商店
系列文
初心者限定!設計師帶你學 Unity 3D 遊戲程式設計31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言